package addition;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 使用ArrayList代替数组，重新编写1-4；
 */
public class Q4 {

    /**
     * 排序
     *
     * @param origin 原列表
     * @return 排序后列表
     */
    public static List<Integer> sort(ArrayList<Integer> origin) {
        Collections.sort(origin);
        return origin;
    }

    /**
     * 平均值
     *
     * @param origin 原列表
     * @return 排序后列表
     */
    public static double average(ArrayList<Integer> origin) {
        return origin.stream().reduce(Integer::sum).orElse(0) * 1.0 / origin.size();
    }

    /**
     * 大于均值数据个数统计
     *
     * @param origin 数组
     * @return long
     */
    public static long greaterThanAverageCount(ArrayList<Integer> origin) {
        double average = average(origin);
        return origin.stream().filter(o -> o > average).count();
    }

    /**
     * 检索 target 位置
     *
     * @param origin 数组
     * @param target target
     * @return 下标
     */
    public static int indexOf(ArrayList<Integer> origin, int target) {
        return origin.indexOf(target);
    }

}
